#include <iostream>
#include "../include/Matriz.h"
#include "../include/Reconocedor.h"

using namespace std;

int main()
{
/*
    ifstream archivo1("test/MatrizA");
    ifstream archivo2("test/MatrizB");
    ifstream archivo3("test/MatrizC");
    ifstream archivo4("test/MatrizD");
    Matriz a;
    Matriz b;
    Matriz c;
    Matriz d;

    a.cargar(archivo1, 0);
    b.cargar(archivo2, 0);
    c.cargar(archivo3, 0);
    d.cargar(archivo4, 0);

    Matriz e = a.multiplicar(b);
    Matriz f = c.multiplicar(d);
    f.mostrar(cout);
    f.trasponer();
    f.mostrar(cout);
    e.mostrar(cout);

    Matriz j(3);
    j.mostrar(cout);
*/
/*    ifstream archivo5("test/MatrizE");
    Matriz g;
    g.cargar(archivo5, 52);
    g.houseHolder(g);
    g.mostrar(cout);
*/

/*
    ifstream archivo6("test/MatrizF");
    Matriz h;
    h.cargar(archivo6,52);
    h.autovalores(0.001, 10);

    TFloat x1(1,52);
    TFloat x2(2,52);
    TFloat x3(3,52);

    vector<TFloat> v;
    v.push_back(x1);
    v.push_back(x2);
    v.push_back(x3);

    Matriz c(v);
    c.multiplicar(c.trasponer()).mostrar(cout);
*/
    //h.qr();

    //res[0].mostrar(cout);
    //cout << endl;
    //res[1].mostrar(cout);
    //cout << endl;
    //cout << " Q x R es :" << endl;
    //res[0].multiplicar(res[1]).mostrar(cout);
    //Matriz u(h.diagonal());
    //u.mostrar(cout);
    //h.autovalores(0.1, 100);
/*
    ifstream archivoL("test/MatrizLaski");
    Matriz l;
    l.cargar(archivoL, 52);
    l.qr_rapido();
*/

/*
    ifstream archivo6("test/MatrizG");
    ifstream archivo7("test/MatrizH");
    vector<Matriz> res;
    Matriz q;
    Matriz r;
    q.cargar(archivo6,52);
    r.cargar(archivo7,52);
    q.mostrar(cout);
    r.mostrar(cout);
    q.multiplicar(r).mostrar(cout);
*/


    Reconocedor r(52, 10);
    string file_name = "../seleccion";

    r.leer_dir(file_name);

    r.entrenar();

   /*for (uint i = 0; i < r.dame_fotos().size(); i++){
        cout << r.dame_fotos()[i] << endl;
    }
    for (uint i = 0; i < r.dame_fotos_nombres().size(); i++){
        cout << r.dame_fotos_nombres()[i] << endl;
    }*/
    return 0;
}
